Note context-aware widgets are a different type of widget which automatically react to changes in the current note.
Important aspects:
class and not an
instance of the class (e.g. no new) because
it needs to be multiplied for each note, so that splits work correctly.class is exported instead of an
instance, the parentWidget getter must be
static, otherwise the widget is ignored.This is a note context-aware widget that simply displays the name the current note.
class HelloNoteDetail extends api.NoteContextAwareWidget {
constructor() {
super();
this.contentSized();
}
doRender() {
this.$widget = $("<div>");
}
async refreshWithNote(note) {
this.$widget.text("Current note: " + note.title);
}
static get parentWidget() { return "note-detail-pane" }
get position() { return 10 }
}
module.exports = HelloNoteDetail;
import { defineWidget, useNoteContext, useNoteProperty } from "trilium:preact";
export default defineWidget({
parent: "note-detail-pane",
position: 10,
render: () => {
const { note } = useNoteContext();
const title = useNoteProperty(note, "title");
return <span>Current note JSX: {title}</span>;
}
});